// Copyright  2012 Petr TALLA. [petr.talla@gmail.com]
// This file is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This file is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY;  without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
// [http://www.gnu.org/copyleft/lesser.html]
//=============================================================================
#pragma once

#include "./TcHtmlView.h"
#include <TcCmdEngineMsgReceiver.h>
#include <list>

class TcHtmlViewTab;
class TcCmdLog;

//=============================================================================
class TcHtmlViewTabbed : public TcHtmlView, public TcCmdEngineMsgReceiver {
//=============================================================================
public:
//<CONSTRUCTION>
    TcHtmlViewTabbed();
    virtual ~TcHtmlViewTabbed();
//<METHODS>
    static TcHtmlViewTabbed& mainView(void);
    void tabAdd(const char* id, const char* name);
    void tabSet(const char* id, const char* content);
    void tabSetCurrent(const char* id) {currentTab_ = id; };

    void tabSetAncient(const char* id);
//=============================================================================
//<OVERRIDES>
    virtual void onEmptyQueue();
protected:
//<DATA>
    std::string currentTab_;
    std::list<TcHtmlViewTab*> tabs_;

    TcCmdLog* log_;
//<INTERNALS>
    TcHtmlViewTab* tabGet_(const char* id);
//<QT>
    Q_OBJECT
//<FRIENDS>
    friend class TcCmds_htmlView;
};
